Kanzi  3.9.9
Kanzi Engine Java API
ResourceManager.LoadTask Class Referenceabstract

Load task allows implementing custom asynchronous resource loading. More...

Inheritance diagram for ResourceManager.LoadTask:
[legend]

Public Member Functions

 LoadTask ()
 Construct a ResourceLoadTask of type LoadAndFinish.
 
 LoadTask (ResourceLoadTaskType type)
 Construct a ResourceLoadTask with the provided task type. More...
 
void close ()
 Closes the object, and releases the resources.
 
abstract void finishFunction ()
 The part of the loading that the main thread executes. More...
 
abstract ObjectRef<?extends ResourcegetResult ()
 Returns an owning reference to the created resource. More...
 
final ResourceLoadTaskType getType ()
 Get the type of a load task. More...
 
void loadFunction ()
 You can override this function to define the part of the resource loading task that a worker thread executes. More...
 

Protected Member Functions

final void enqueueDependencies (String[] urls)
 Add resource dependencies for the load task. More...
 
final ResourceManager getResourceManager ()
 Get the resource manager of a load task. More...
 

Detailed Description

Load task allows implementing custom asynchronous resource loading.

A load task is split into an optional LoadTask#loadFunction and mandatory LoadTask#finishFunction. Kanzi can execute the LoadTask#loadFunction in a background worker thread, instead of the main thread. For this reason, perform here only thread-independent work. Kanzi calls the LoadTask#loadFunction in the main thread. The load task execution happens in this order:

Constructor & Destructor Documentation

Construct a ResourceLoadTask with the provided task type.

Parameters
typeThe task type that configures which task functions are called.

Member Function Documentation

final void enqueueDependencies ( String[]  urls)
protected

Add resource dependencies for the load task.

Can be called any number of times inside a LoadTask#loadFunction implementation. Informs the main thread of the dependencies, which can then trigger their async loading.

Parameters
urlsArray of dependency urls.
abstract void finishFunction ( )
abstract

The part of the loading that the main thread executes.

The function creates and stores a new resource that LoadTask#getResult() returns.

final ResourceManager getResourceManager ( )
protected

Get the resource manager of a load task.

Returns
The resource manager.
abstract ObjectRef<? extends Resource> getResult ( )
abstract

Returns an owning reference to the created resource.

Returns
The created resource.
final ResourceLoadTaskType getType ( )

Get the type of a load task.

Returns
The type of the load task.
void loadFunction ( )

You can override this function to define the part of the resource loading task that a worker thread executes.

You cannot access any shared data inside the function.